using Sinacor.Servico.Bovespa.ManutencaoOrdens.Service.DataContract.Enum;
using System;
using System.Runtime.Serialization;

namespace Sinacor.Servico.Bovespa.ManutencaoOrdens.Service.DataContract.Response
{
	/// <summary>
	/// Contrato de dados que representa uma ordem.
	/// </summary>
    [DataContract(Namespace = "http://www.bovespa.com.br/Sinacor.Servico.Bovespa.ManutencaoOrdens.Service.DataContract.Response", Name = "OrdemResponse")]
	public class OrdemResponse {

		private string _apelidoCliente;
		private string _ativo;
		private short? _carteira;
		private string _codigoBolsa;
		private int? _codigoBrokerCliente;
        private string _nomeBolsa;
		private string _codigoCasamento;
		private int? _codigoCliente;
		private string _codigoISIN;
		private int? _codigoOperador;
		private int? _codigoUsuario;
		private string _complementoNomeCliente;
		private DateTime? _dataHoraOrdem;
		private DateTime _dataOrdem;
		private DateTime? _dataValidade;
		private string _descricaoAtivo;
		private short? _digitoCliente;
		private bool _discricionaria;
		private bool? _distribuida;
		private bool? _indicadorCasaOrdem;
		private bool? _indicadorClientePessoaVinculada;
		private bool? _indicadorDesprezaSaldo;
		private bool? _indicadorGravaLog;
		private bool? _indicadorLiquidacaoExterna;
		private bool? _indicadorOrdemAdmConcorrente;
		private bool? _indicadorOrigemMegaBolsa;
		private string _indicadorSistemaExterno;
		private string _loginOperador;
		private Enum.TipoMercado _mercado;
		private string _nomeCliente;
		private string _nomeEmissor;
		private int _numeroOrdem;
		private int? _numeroOrdemOriginal;
		private int _numeroOrdemSubSequencia;
		private string _observacao;
		private Decimal? _percentualCorretagem;
		private Decimal? _percentualFinanciamento;
        private bool _possuiPreBoleto;
		private int? _prazoVencimentoTermo;
		private Decimal? _preco;
        private decimal? _precoMedio;
		private decimal? _quantidade;
		private Decimal? _quantidadeAnexoIV;
		private Decimal? _quantidadeAnexoV;
		private decimal? _quantidadeCanceladaOferta;
		private Decimal? _quantidadeExecutada;
		private Enum.SituacaoOrdem _situacao;
        private DataContract.Enum.SituacaoCasamento _situacaoCasamento;
        private Enum.NaturezaOperacao? _naturezaOperacao;
        private Enum.TipoDistribuicao _tipoDistribuicao;
        private Enum.TipoDistribuicaoPermitida _tipoDistribuicaoPermitida;
		private Enum.TipoLiquidacao? _tipoLiquidacao;
		private Enum.TipoOrdem? _tipoOrdem;
		private Decimal? _valorDolar;
		private Decimal? _valorFinanciamento;
        private DataContract.Response.ValorOrdemResponse _valorOrdem;
        private decimal _saldo;
        private decimal? _volume;

		public OrdemResponse(){}

        [DataMember(IsRequired = false)]
		public string ApelidoCliente{
			get{
				return _apelidoCliente;
			}
			set{
				_apelidoCliente = value;
			}
		}

        [DataMember(IsRequired = false)]
        public string NomeBolsa
        {
            get { return _nomeBolsa; }
            set { _nomeBolsa = value; }
        }

        [DataMember(IsRequired = false)]
		public string Ativo{
			get{
				return _ativo;
			}
			set{
				_ativo = value;
			}
		}

        [DataMember(IsRequired = false)]
		public short? Carteira{
			get{
				return _carteira;
			}
			set{
				_carteira = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string CodigoBolsa{
			get{
				return _codigoBolsa;
			}
			set{
				_codigoBolsa = value;
			}
		}

        [DataMember(IsRequired = false)]
		public int? CodigoBrokerCliente{
			get{
				return _codigoBrokerCliente;
			}
			set{
				_codigoBrokerCliente = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string CodigoCasamento{
			get{
				return _codigoCasamento;
			}
			set{
				_codigoCasamento = value;
			}
		}

        [DataMember(IsRequired = false)]
		public int? CodigoCliente{
			get{
				return _codigoCliente;
			}
			set{
				_codigoCliente = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string CodigoISIN{
			get{
				return _codigoISIN;
			}
			set{
				_codigoISIN = value;
			}
		}

        [DataMember(IsRequired = false)]
        public int? CodigoOperador
        {
            get
            {
                return _codigoOperador;
            }
            set
            {
                _codigoOperador = value;
            }
        }

        [DataMember(IsRequired = false)]
		public int? CodigoUsuario{
			get{
				return _codigoUsuario;
			}
			set{
				_codigoUsuario = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string ComplementoNomeCliente{
			get{
				return _complementoNomeCliente;
			}
			set{
				_complementoNomeCliente = value;
			}
		}

        [DataMember(IsRequired = false)]
		public DateTime? DataHoraOrdem{
			get{
				return _dataHoraOrdem;
			}
			set{
                _dataHoraOrdem = value;
			}
		}

        [DataMember(IsRequired = false)]
		public DateTime DataOrdem{
			get{
				return _dataOrdem;
			}
			set{
				_dataOrdem = value;
			}
		}

        [DataMember(IsRequired = false)]
		public DateTime? DataValidade{
			get{
				return _dataValidade;
			}
			set{
				_dataValidade = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string DescricaoAtivo{
			get{
				return _descricaoAtivo;
			}
			set{
				_descricaoAtivo = value;
			}
		}

        [DataMember(IsRequired = false)]
		public short? DigitoCliente{
			get{
				return _digitoCliente;
			}
			set{
				_digitoCliente = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool Discricionaria{
			get{
				return _discricionaria;
			}
			set{
				_discricionaria = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? Distribuida{
			get{
				return _distribuida;
			}
			set{
				_distribuida = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorCasaOrdem{
			get{
				return _indicadorCasaOrdem;
			}
			set{
				_indicadorCasaOrdem = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorClientePessoaVinculada{
			get{
				return _indicadorClientePessoaVinculada;
			}
			set{
				_indicadorClientePessoaVinculada = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorDesprezaSaldo{
			get{
				return _indicadorDesprezaSaldo;
			}
			set{
				_indicadorDesprezaSaldo = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorGravaLog{
			get{
				return _indicadorGravaLog;
			}
			set{
				_indicadorGravaLog = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorLiquidacaoExterna{
			get{
				return _indicadorLiquidacaoExterna;
			}
			set{
				_indicadorLiquidacaoExterna = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorOrdemAdmConcorrente{
			get{
				return _indicadorOrdemAdmConcorrente;
			}
			set{
				_indicadorOrdemAdmConcorrente = value;
			}
		}

        [DataMember(IsRequired = false)]
		public bool? IndicadorOrigemMegaBolsa{
			get{
				return _indicadorOrigemMegaBolsa;
			}
			set{
				_indicadorOrigemMegaBolsa = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string IndicadorSistemaExterno{
			get{
				return _indicadorSistemaExterno;
			}
			set{
				_indicadorSistemaExterno = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string LoginOperador{
			get{
				return _loginOperador;
			}
			set{
				_loginOperador = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Enum.TipoMercado Mercado{
			get{
				return _mercado;
			}
			set{
				_mercado = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Enum.NaturezaOperacao? NaturezaOperacao{
			get{
				return _naturezaOperacao;
			}
			set{
				_naturezaOperacao = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string NomeCliente{
			get{
				return _nomeCliente;
			}
			set{
				_nomeCliente = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string NomeEmissor{
			get{
				return _nomeEmissor;
			}
			set{
				_nomeEmissor = value;
			}
		}

        [DataMember(IsRequired = false)]
		public int NumeroOrdem{
			get{
				return _numeroOrdem;
			}
			set{
				_numeroOrdem = value;
			}
		}

        [DataMember(IsRequired = false)]
		public int? NumeroOrdemOriginal{
			get{
				return _numeroOrdemOriginal;
			}
			set{
				_numeroOrdemOriginal = value;
			}
		}

        [DataMember(IsRequired = false)]
		public int NumeroOrdemSubSequencia{
			get{
				return _numeroOrdemSubSequencia;
			}
			set{
				_numeroOrdemSubSequencia = value;
			}
		}

        [DataMember(IsRequired = false)]
		public string Observacao{
			get{
				return _observacao;
			}
			set{
				_observacao = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? PercentualCorretagem{
			get{
				return _percentualCorretagem;
			}
			set{
				_percentualCorretagem = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? PercentualFinanciamento{
			get{
				return _percentualFinanciamento;
			}
			set{
				_percentualFinanciamento = value;
			}
		}

        [DataMember(IsRequired = false)]
        public bool PossuiPreBoleto
        {
            get { return _possuiPreBoleto; }
            set { _possuiPreBoleto = value; }
        }

        [DataMember(IsRequired = false)]
		public int? PrazoVencimentoTermo{
			get{
				return _prazoVencimentoTermo;
			}
			set{
				_prazoVencimentoTermo = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? Preco{
			get{
				return _preco;
			}
			set{
				_preco = value;
			}
		}

        [DataMember(IsRequired = false)]
        public decimal? PrecoMedio
        {
            get
            {
                return _precoMedio;
            }
            set
            {
                _precoMedio = value;
            }
        }

        [DataMember(IsRequired = false)]
		public decimal? Quantidade{
			get{
				return _quantidade;
			}
			set{
				_quantidade = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? QuantidadeAnexoIV{
			get{
				return _quantidadeAnexoIV;
			}
			set{
				_quantidadeAnexoIV = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? QuantidadeAnexoV{
			get{
				return _quantidadeAnexoV;
			}
			set{
				_quantidadeAnexoV = value;
			}
		}

        [DataMember(IsRequired = false)]
		public decimal? QuantidadeCanceladaOferta{
			get{
				return _quantidadeCanceladaOferta;
			}
			set{
				_quantidadeCanceladaOferta = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? QuantidadeExecutada{
			get{
				return _quantidadeExecutada;
			}
			set{
				_quantidadeExecutada = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Enum.SituacaoOrdem Situacao{
			get{
				return _situacao;
			}
			set{
				_situacao = value;
			}
		}

        [DataMember(IsRequired = false)]
        public DataContract.Enum.SituacaoCasamento SituacaoCasamento
        {
            get
            {
                return _situacaoCasamento;
            }
            set
            {
                _situacaoCasamento = value;
            }
        }

        [DataMember(IsRequired = false)]
		public Enum.TipoDistribuicao TipoDistribuicao{
			get{
				return _tipoDistribuicao;
			}
			set{
				_tipoDistribuicao = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Enum.TipoDistribuicaoPermitida TipoDistribuicaoPermitida{
			get{
				return _tipoDistribuicaoPermitida;
			}
			set{
				_tipoDistribuicaoPermitida = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Enum.TipoLiquidacao? TipoLiquidacao{
			get{
				return _tipoLiquidacao;
			}
			set{
				_tipoLiquidacao = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Enum.TipoOrdem? TipoOrdem{
			get{
				return _tipoOrdem;
			}
			set{
				_tipoOrdem = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? ValorDolar{
			get{
				return _valorDolar;
			}
			set{
				_valorDolar = value;
			}
		}

        [DataMember(IsRequired = false)]
		public Decimal? ValorFinanciamento{
			get{
				return _valorFinanciamento;
			}
			set{
				_valorFinanciamento = value;
			}
		}

        [DataMember(IsRequired = false)]
        public DataContract.Response.ValorOrdemResponse ValorOrdem
        {
            get
            {
                return _valorOrdem;
            }
            set
            {
                _valorOrdem = value;
            }
        }

        [DataMember(IsRequired=false)]
        public decimal? Volume
        {
            get
            {
                return _volume;
            }
            set
            {
                _volume = value;
            }
        }

        [DataMember(IsRequired = false)]
        public decimal Saldo
        {
            get
            {
                return _saldo;
            }
            set
            {
                _saldo = value;
            }
        }

	}

}